<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta name="referrer" content="no-referrer"><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>001.php-curl万用通讯类 | 扣小妖</title><meta name="author" content="扣小妖"><meta name="copyright" content="扣小妖"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="有东西被加密了, 请输入密码查看.">
<meta property="og:type" content="article">
<meta property="og:title" content="001.php-curl万用通讯类">
<meta property="og:url" content="http://liukuaizhuan.gitee.io/posts/52e236c9.html">
<meta property="og:site_name" content="扣小妖">
<meta property="og:description" content="有东西被加密了, 请输入密码查看.">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://p.ananas.chaoxing.com/star3/origin/369de39b4145b2716d7c8a0e5df57e19.png">
<meta property="article:published_time" content="2022-12-15T12:49:07.000Z">
<meta property="article:modified_time" content="2022-12-20T18:13:47.386Z">
<meta property="article:author" content="扣小妖">
<meta property="article:tag" content="笔记">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://p.ananas.chaoxing.com/star3/origin/369de39b4145b2716d7c8a0e5df57e19.png"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="http://liukuaizhuan.gitee.io/posts/52e236c9"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/font-awesome/6.0.0/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/node-snackbar/0.1.16/snackbar.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://gcore.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = { 
  root: '/',
  algolia: undefined,
  localSearch: {"path":"/search.xml","preload":true,"languages":{"hits_empty":"找不到您查询的内容：${query}"}},
  translate: undefined,
  noticeOutdate: undefined,
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
  copy: {
    success: '复制成功',
    error: '复制错误',
    noSupport: '浏览器不支持'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: '',
  date_suffix: {
    just: '刚刚',
    min: '分钟前',
    hour: '小时前',
    day: '天前',
    month: '个月前'
  },
  copyright: undefined,
  lightbox: 'fancybox',
  Snackbar: {"chs_to_cht":"你已切换为繁体","cht_to_chs":"你已切换为简体","day_to_night":"你已切换为深色模式","night_to_day":"你已切换为浅色模式","bgLight":"#49b1f5","bgDark":"#1f1f1f","position":"bottom-left"},
  source: {
    justifiedGallery: {
      js: 'https://gcore.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
      css: 'https://gcore.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
    }
  },
  isPhotoFigcaption: false,
  islazyload: false,
  isAnchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
  title: '001.php-curl万用通讯类',
  isPost: true,
  isHome: false,
  isHighlightShrink: false,
  isToc: true,
  postUpdate: '2022-12-21 02:13:47'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(win=>{
    win.saveToLocal = {
      set: function setWithExpiry(key, value, ttl) {
        if (ttl === 0) return
        const now = new Date()
        const expiryDay = ttl * 86400000
        const item = {
          value: value,
          expiry: now.getTime() + expiryDay,
        }
        localStorage.setItem(key, JSON.stringify(item))
      },

      get: function getWithExpiry(key) {
        const itemStr = localStorage.getItem(key)

        if (!itemStr) {
          return undefined
        }
        const item = JSON.parse(itemStr)
        const now = new Date()

        if (now.getTime() > item.expiry) {
          localStorage.removeItem(key)
          return undefined
        }
        return item.value
      }
    }
  
    win.getScript = url => new Promise((resolve, reject) => {
      const script = document.createElement('script')
      script.src = url
      script.async = true
      script.onerror = reject
      script.onload = script.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        script.onload = script.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(script)
    })
  
      win.activateDarkMode = function () {
        document.documentElement.setAttribute('data-theme', 'dark')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
        }
      }
      win.activateLightMode = function () {
        document.documentElement.setAttribute('data-theme', 'light')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
        }
      }
      const t = saveToLocal.get('theme')
    
          if (t === 'dark') activateDarkMode()
          else if (t === 'light') activateLightMode()
        
      const asideStatus = saveToLocal.get('aside-status')
      if (asideStatus !== undefined) {
        if (asideStatus === 'hide') {
          document.documentElement.classList.add('hide-aside')
        } else {
          document.documentElement.classList.remove('hide-aside')
        }
      }
    
    const detectApple = () => {
      if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
        document.documentElement.classList.add('apple')
      }
    }
    detectApple()
    })(window)</script><meta name="generator" content="Hexo 5.4.2"></head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="https://p.ananas.chaoxing.com/star3/origin/c6eb667caaea4b46a934d65b6a348821.png" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">57</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">6</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">14</div></a></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 时间轴</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fa fa-heartbeat"></i><span> 清单</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> 音乐</span></a></li><li><a class="site-page child" href="/photos/"><i class="fa-fw fas fa-images"></i><span> 照片</span></a></li><li><a class="site-page child" href="/movies/"><i class="fa-fw fas fa-video"></i><span> 电影</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div></div></div><div class="post" id="body-wrap"><header class="post-bg" id="page-header" style="background-image: url('https://p.ananas.chaoxing.com/star3/origin/369de39b4145b2716d7c8a0e5df57e19.png')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">扣小妖</a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 时间轴</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fa fa-heartbeat"></i><span> 清单</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> 音乐</span></a></li><li><a class="site-page child" href="/photos/"><i class="fa-fw fas fa-images"></i><span> 照片</span></a></li><li><a class="site-page child" href="/movies/"><i class="fa-fw fas fa-video"></i><span> 电影</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="post-info"><h1 class="post-title">001.php-curl万用通讯类</h1><div id="post-meta"><div class="meta-firstline"><span class="post-meta-date"><i class="fa-fw post-meta-icon far fa-calendar-alt"></i><span class="post-meta-label">发表于</span><time datetime="2022-12-15T12:49:07.000Z" title="发表于 2022-12-15 20:49:07">2022-12-15</time></span><span class="post-meta-categories"><span class="post-meta-separator">|</span><i class="fas fa-inbox fa-fw post-meta-icon"></i><a class="post-meta-categories" href="/categories/php/">php</a></span></div><div class="meta-secondline"><span class="post-meta-separator">|</span><span class="post-meta-pv-cv" id="" data-flag-title="001.php-curl万用通讯类"><i class="far fa-eye fa-fw post-meta-icon"></i><span class="post-meta-label">阅读量:</span><span id="busuanzi_value_page_pv"><i class="fa-solid fa-spinner fa-spin"></i></span></span></div></div></div></header><main class="layout" id="content-inner"><div id="post"><article class="post-content" id="article-container"><div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉, 这个密码看着不太对, 请再试试." data-whm="抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.">
  <script id="hbeData" type="hbeData" data-hmacdigest="8f114a20e99d7c148f8fc3aaae9b3df552d73b5c389d5c944fb88d0e024dd6f6">1b048b2bad1133e7d3decd938bb072dc5a224e5e57aafd9861f5f1b113367477e04279f7dd6d6e69c60a7fc521ba420159fb8b55269b093437a905fa8361583592c113b199fdc86c3d6c6652a9dc4ce0b44d9b48dbb7cca61faf78d582596af5e2909a091471406ada9c067f70117ae6901638ace3ba9260ba4de8b87b1129142b9f0b3a1839205e3c4484236995f6ff7da3ea892bd449f24ab77c96dd30dc4ca08333490d0d083d4395eb41ecc510f9d55a2f931793cfe4407e77d7ecd7b4e621e362735e31f419aacb27766a9ab61fcab0e6d41fd1df11a87cfe744c33df933c73427e80f3fdaba89f1a186088ea5d5601925407418078b597c41a0c58af6ab8f8a758197f56f08350387b2ade7cba3d3b91dd0cb55fac8f73f6b5dda5763b32d458796879c9b8bce299d50f99650d239d3bfd9b068b0833bdb2721849b934a97fb6386baab02163ae88e3b1113edb3e9a521ddad82edfd1e2791816140e09ff7a45435846a88427e4e6aeafa914fc0d2100cc82ba312536de737123f44e19d1387bedc2de528ac7f452cef65722741ba16ee9ecfa636af4f3869ad508cc7f0ef6c1fc724a6d57c1ceda2819feed67670d13cc2169c17368a2756860ac4feb208f64d1e6ec43c831b63c94f861dd73180410848816c40cdab33cfee287c888b1622901cf2f4c184085ec47f1067406326dff82552dc18311a5b303a0cb07bcdebac5a28d3720e47e29f648eca90d721d2644f33dedcf8395c7be9c2ca62bc6fd50858f03ac8b60954eb99201e0cb54c39c964651173bad1db90b554401d13342bb689b124fefaaab5c9dca079ddd94842e8aa78575224d881103aab32eece5f65803dc1169e1048f38b2f425559b7408ee3af8a0f905ae0cbf81c2a2c7e1601a0de81bd315714edb58f3ef236897b8ff4adedae9f1719734b98c921ac39d5bd0d16d60ddc7784ad476e2e579e4854861bed2f06ece27c5185ea99bed45d5c41a399fdfafec5990ea74728f4c0166cb4f955498cf6235ec147a56d61e045e445ce48894e91f0fa28c4adeeb6f7e454fdad6c27f6f43f2214c41fd460b32ee206391c969b0f724ecef4c4fdb992a588244664dc4b6c67226c523bbad0a3b613a1d160b5bfeac5549709eaa5c26b4754007445a3d568872fa721433118e54cd8add452546a7507a433c1a32c4bbac7323afe1eec7115a3371e918cb2a20ca332bc5cf5bcaed4d2a5f12989b6b7f1ef1429ceb925a36ced17553ad86eb5220924ac01e55cc604baa35eb408bc697384060d0f6ae490a556fdbc1afed38c6b480331e6cdbdc741c7683fdd2fd1e5512e2e6951900cc11d29486bc466b2205ec012101a476931d48711be7ef6a1ef124b05ff4d773bbf46c9f98d2777f341d95823268a51e6ea4fa05e6ba268aa8d81ae4e06ee01c55de3a4db7d810f26db70dc3d38a60789b06488d2a948cf94e19cac6607a72060418709e2766c95fb7e1ca8afaa485437e9338cbab691f635915c16199cfd294695b047f0a3fc41a12224ce5b91dd8ce7a4f0e8219807c7151d45af0ec7359f5235562a65c71524e7d5a6d1898ea07b10416120e101db8b196bb4b7854954266d69385fbeca4a75e02638ca67c45a2f7e361dd6565eeb00b7887f40ad08abea848c360db0bd7b121fd67303a9a600a74106a51f3c399ccad8b8dc6ad05b8df1233080be211a84cd8bb1719c2dd1e736b040eaea94b2611458cc834b5bd303bfd114161cd032d7afe2a4fa08d5f17d94787aec1c9c61eff4367858ec27cefd5b4b14695651f844f078a8580191fc5269d087e5c07cb696d7222329276e1c36e708c61d2d2a902f95a3870416cf9f4618bdcc622696620960564f0f90de79dbfa24135ea6ac9c411a654952ca2f396fa9961fb68d9541de3dc6397a28ff572f418b750f39ec8d27afa16f5adfad873c65c533b661c14fafcbe8dd701373b5be8c437ac6702f5b21b25b0e707ad511a16c9df8901c1ba32661011f907eb70eb6d338e9b1f6271a331ad39b3852210bd86446525d275892238793d0f59950a183d48f2062fb122da9161707b791bd861bcb88061d1fe76321da3b6f28ec8bbb0c7fdc087a08423adf003f4dd882a49902ccd14a29abb4cf240c9c77545c4ab2e8217ecdc0c3a5210ff515021eaf6603ca3545570676b6cb5358623159c9122d172b9d22319e8dadbad30b31fe673f6759ca4159e4d1c8d0ec405f008199fb3e74270884ff2f0e5c4739f45dbab4671df4c4927ea720af13b9aa954ac68a4a1c49a9fc718794134b24907a67a315593b0866781d71942b6e24d67e9a56317a7c5d0a129aac5d88ac5edcf5ad53ebcca7d4986c979483bafabda11e9507fd1a3664dfe0e4d64dcfa3047da3e732e3294830b33ae80372c01bf1695a439c214db57164b6b5e96a2fc650342cf92de27dee7a4ba6126cb9135b87515c87d68ca882137d4da6059927f6c9588459507e457cb092df3ca6255e5c6b916a3496092fc2efe5b5dae0ee4894cc78df2175055bbd312327c45b3ec5c004fc4a2412e45058c2b41ce68cd2985ac5c914e2573beac5a024ec6ec8fa2fa5c3b89ee290d5f6dd5473fdaca9e729c0d0c192b6b910a8bc68136ae95dd34ed389d2b016da18c16cc5c68f4a8aa232a045f12e9be95d668bba7e72caa5b420377a43f604fefcfbec2f20ef20de1c931e0efe2a503d86858cc35f7ea7f4dbd1ebfeeceed4f4eede5979a9a9168572a33d470669cc6359095927234c628d78a9fd16c73269ba80786ce96bcd345866e157681e2d52b85f0ac82872c493356fac63574591826000d8b1d4bae3e62607d822168a17923149dae2ffe17c17ecd3775c2f932f64dd8aacf814a259317c5b12d50e7b22fef6e1b4a36ab87979e7736f2135c55076c9d56295f482ecf6c5496e5c3eaac0783a004acc60092755b7fded125efd4b108c66c47da27316d28713ac1d86271d4e1087f9be8dc85673555bf08e041ffcd140f35e30a87c2abbfe857dda328371b4b899fdaebc272c4984a742ae7e031a3e763e95bcefdc14699dc997087acdfa64fc027a07c175ade0fd7b442f98f41b98f5bdde247b664731189ee51d76b659fa4c2edd44874e8370aa90e990c665899077fd2ebde2022e80ca10b19d0d2c45b6d7ea90bcc2d0c1d981b23432ca50c9c88bbf02d788687c8cccca16f9c5dcd8b47d4e78f0b68371fed3adb0ad3f6194b459cd77b33a54e57ad207cfee12e2d26baa74e3219a4ef1948747d9fcddbb92a50666a32f051936c24bb0fbdbb0e19f88169afa0b8457c0f9f98c56ad470b41b1376d44f5e8b722316b638693185b43c6d559068053f7644ce308417cbd49de433f6032851c33e4a4b789ed8e974e73c3b3e1abf1eac858c109d6511ce986f5ba81efc69bd684eb5ca137b1f08e72679b899cfba5c144a302c90ee5db027f222cc0be2e78275faa71b76c076bdaea755399ec6a660ac00f7643442a5ae8db0615436b3d07707e2cb3689fb86b85c712f72affa5a58b16bffc5e8439fade91b1cbc20431e2c0e2afc8db67c63bf557d96a9d0d18f0b37893fdf7cd6c3fcc65ace1395fb3e5118e352e21bcd9fcfab754ecb08ea074bb863b14573b4c0c3097ec9fec834752ded20782397d64161feeb181011681a775e631a388e204508c5a6d908e8099681230aa64391534ab5310d98ad4b42125801662c0fcd6aa5e46fe05cfd0b52644d0460ae0ebf4433a40202503fcddd4771fd0702a95316a6edf964837a07172e06e2b5cc6e1aa06cee6651800619b3cd4ba90d3f023d8a8c37a367e231e12d493325b40fa2c408f3ae1ec61a346ec4203106f9288f39a344427d5644f3863f2a8abf67cbaf2e19b0efdf9305af0010593eb272ebc164fe171988920c6b2854e3380077e654603111780095e7e53f182346490d5deea33c6a05b66c1a84224361b64f1799ef19f24fba59c75009f64d37c98aff8587480e37feedfc4609527acd23c3e7ad1f317c6cd321b2127b2c5496c303227fab94351b3104a1276284330cdf3bafa6249155c119cc4603aca9fc96e5bdd320d289a62f9c2a99c5471ecec237691c311425e12796495eb60c57c71ade10d71d920c8bf1ed44204293d528202b6f739c1bbed19ee17fac4423c503e214780dfc22ba73e74929a9cc877f150ba3d0c70c0f04c0c06e6f68865c9236fbd57e57abee84644be1018da38837c7fdfe6f4da459cb74c830dfdfab3a82b3aa791a26414fb749b1872451700321298afd28845ba9cb68f377c8bdaef3174ed77195b3ca322f46ff712ff97dad3ce893e248a5a62f3137a9297dd504d7a12b3fede6736fcc58f1175c141983ec68ea673dcf6a5a5a0331e9309968498bfd2bdbc3c1ea3d062d944147fbcd6ee649c3d5c1352ed71484d8043f52088e7f42cca6e8845c25d92813591abe83b654cd9c587fee802f33a539ba8155daad4f40112ac10163ae3edc4083143d998a7a899a00c5543e219edccc82e14c6fad71479427e6a969e0a0170a767027e4c4d8f9e51e8d1d8930cc4ebe22aea35619d3905437a69788a7606b98ccd00683edc9c3b03a65cb5b9e8b25732063d7820bf77799e1a0df1c9c257281ff5d20f58a81894755802c8819dfee222b0a44a5204d3a86a3f5cc4ac19ee9dbc7859012140a6c27b5bfd5ee37d44a3a46570515a04fa3e735d8e906007a14fdcfac040338c80b94940e493633a1ec1232bb1d057024e19129da98c42cbb38a6428a275c5badccb0981505837d469199cea719b0208e549641af6105222b1bed7e5b0e6d323c249fc739454335bd601de5fc665fdeb531c6485cddaf4b067e12f74eb6f9b6548481842e2772a063e0f29c379e4a07c780d3cfba9f14e4cc10b93fb432e1c98dba0e4f82e13804af9c9af75e665424e3931978be7b19bb323dd7ad4e287f1850e1f9a9f8197444dbd44475ccdd0c74c59353b8872fb306106ec96881f5a1e4bdf9979e766abdf93aa5ef0ea93ac246ee9fee3983c3213cf4a039ca0a986198258f3692c1aa8ac2cf63efdca8172e311a1eb7ae934502d373b15049925534e37e35ba8ebe116da681ec3e66a0f0ab8ca7afb6079fcfc7f01b55bee48c8319f22dc8d845f2b5fc3a002da54d61842fefacafe0ef104f0703e4d96daaecce97dfb458f7c66bc1016159b199523cb13f5d4a8b7929772b1737656789d659d9ca3ea0455f537139949f446cb1b5ca67f317a77730d0eb297b091eeaaa9769a82089af1c14a019876d22ba4e7ac9501df12579172374b9f3d4a246d1369ef8154caed50640858011fd9fb298bc2a0ebae5be3980d9bbc71cae68e3079b008221c4e9f3974eb59f8f97f689c861df1bda4b7ad76323042d083f7bc7618b3f491a3b7f5f00a1894ebbafb3c34cd9bc85e766397838d6cee1dd255aeecfebbf0e50580077714d18998b004c4ac577d0564e9e9c065bcf385a476655016e1d65481de87850cff7fa8eca9a846eeb149969b5478120819d18750671e3617626852fdca0b9adef9f6ff991e1cb6890763280fb5f328e395376ca1fc2d1a2ca066902d3d18ca6f013448e2193dd651bbc6328e6325b092e717e3253d66bbd085f4fcaaa8260d1b7cde4e79a7e77e8aeac18d961393dbd2902b4d58672797c03530be3246cb2cb5b5d1ba581b13bfadd088c279ec61a06e335327a31ede30e299786b93117de91e8726e0c61d94f4270a6807c7ab31f067ee98c058f1ab426137b083e62a0091f92f844acb50b562353f63f3700c3671f3b833bf94c1c3d6b7e7807e985a0ec1e37fbbacaa083ca1b6f4fd4e60e65b914ff9dad2e5d9709f57ba3e98401816943f1bbb66f066c99cae9f727a7d5dcd6fbfa5920185be91470958b724181270739ca480dcb3d085042f93420e05c08bd713f755fd3f92087ab69e5cd8743d53a7068fcce3e57f37208174b8050dd888af07b8a62712bf6d350443278b06ff9ad334ddd005a37089f8313abbd72a3254d9c72beb640b89e332d3ca537542a7d536b352f67d7efa5f29347eae8f11fad6dc626422c74886e47a8f6d7d1596fb409e7c6cf38f434aa0df4e6482893bfefed94c5374b959f8ee037adf4619d46ebf442296102fe0befe919ca5db81c86bee325d4eb95934ca2fced8608adea6197b8deb1baeec034acc814dc685d858a9aa6952821d7d0514addd9326ddd683819e0650b93f44a7fe49373456c4c7bfaa78f1692aacd1194dab712db8651fe7554484e6482eddf9b6cc7b2a36048a4281c14ac72b44380f79d1fc925187bed30fe4375d6c673b1d742045ad9f3e3a082ddbad16b7ef7ef0a2c488f1caaa21e9ad0edd0e8583ea448ac54ecbfd456b1fd2a51e9e71c18cf21682a0f1069589e54696fde6d06bfbd4dd52038d0bf661a36ea6b045c6e0c3f778344d8eb5a38c75a48f8b883a1ea3b5ae47832611893ea3a7edc9bcbeeda44524fdf449858593311d6f8debc499fd7699fa01c8f6b4aa1546104f445bca5ac7e9b9c162608aac4be49e64c130422e95df3d88d102bad1b82ecac4af088e4b32b2f8f6f1fc4dc1156d24c229fe2fd7a29e2ddd56472cbd0948d15053cbe22e3147aec3e0692f204340f677dedd1f66654897fc833a56e04bfad88544661f54aeb639c356d8be1f7dbd6d01617b525d15c05451debb920ff1c2bd3b748fbd2ec9d67a3fcd9310604e0d2d992b6205af30ff162ec262b2d0280979f6255dcecaa9aba9ae095fe531367aee78339f24df14c3ba260f59d328cd47b721b33408209a7d75403b4d37db0023cbe07e6f86bf1e2e88281f6697de059642679fbc53487ebfefa32a0d7425de1ff859f980ebf90490805ea57a0a6d38b888cd2fc6418653e0c26f4a3d9e15b7eaddb0def800d54a9acc92d0b0a776e702c86a8d8fbbcf44e9e6fb45f8684648ab5d90916a9f1ae7ab8d333f940bf29baa3b6772fdfbeb29156d81e48cbab40ba667592dd58bb7be66197786e08bdc76f8179da269dd6dbe6feecf7f494a424fd5f42ec578c1a877e9c0a4b6c3a97508ad414f6d5882eaad63206082de8e6daa76fcd4fc40157436680d02ed0c3cd9926f331fcda6d3a1a6363219faebed5a8c9552205880456e1784ab1630f9b8e01170e1121a974cbc8df5274d9a24cc11a38e940b7bf8e372aa90df0cc0577e4e5a750bd39c91c053ef082422e8c636454bee0ae5fc9a3450a2b85831647a2fdb0698541c3d867df34853771a932c68826d4d2627d305401b0f415ad16f8b9fbc370639744faa052c4b580ec8be52749f373ee379a0673571916c8128af3b7175dd99d7cde2498275d264263fdca234bb22b20536b7406a93c0d729bc6dbf5109298952e9c2c052175632ec20c9ac8337bfc68db8a2dd4dfd1d0bed8db0812339178434989c4847661e0fcad51d3685f0702a0e97b54721161d656d0b17914013a0775fe99b4f95b37517dfd75280cf737666352baec164bf56848dc3bc5efaed3666f5d1a4869cab68c9eeba7dd2fbde554668958ba1f4a1ecd6fb9f4307bc74c98e1bf16f827d02d86be093a64696a975fd5511bb53d94df6bc4ac64d19ee8ad1b74b4272a5a0abc1cb9c40400f6c5bb4adb97befae872e4c5f8ddc2bb9e306c210837c2f62d5df9bc053fa84aec78ba0b8ba390cd7f18279dbcc418221a168cbf263013354e7cce1733aa75bd0b76eddfff5b765af318f970cab79ada483b6a9b2a409045ac1536328c5671c32dfb8417ef24399314a6c115b434d605ec47c234dd90313aacab0b46b6f91ab0b8dc6539366ca355f2c3c2b02bb6f7c1d4d8546a5b669fff1a232428a98dd3f02faf16f0fe29036d9f45aee86e588e8f431042a6ad2aee9f64c883a083fad9bed1bcc593be0cf99bea3d52ccc6c4ba1982b2a1daae8351f838693710425120637b68e28afe6bc30c740177b9603c16d8616fb128668730e1713225a274c77f20dffda8cd15a64581c48571115280355e586ffee08acbdcf70cc834446de218ab3c331dc05e107227dba63a8ba061a41d7cb476c9b74fc90a5b5466dbdc0fb51146df0ae57f8bd6c74bed2583805be6bb1e4bb9b7583eab8304a41143d8c4e0c831739800414fc54dea5c6c11ca9be758a774740d49c02d9dc95950c5bbc73668724d0bec713fcc54268610c2f7bb269325ed238536d017d431563f2388c3aafce3bec3649b33d0ec501cde146cb6d2ecec5fd35dcaffa9af4cd8ee0f63bdd29f0c74331799dd004f1f2b28b11e69382435e685ae272028ad235f9c3082c00b3ec6a5dd3c8d934112587be500122e706806786fac834db97497154607c1219b337d90fab143b48f69789a63ed4f89f683b96a179dd2886b9cb6614b9d1039a1b3374f4c4bdf4b5a277e7ad401083e8c2d9934abb8a75a6f07e9dedec7a605f988be1faa40bb9f4464b1d9b82b99d2fceb0ce15db533cb22840ae9b28e399ac22cd67c9de55f01a3cad6c14ff08e1efb02ec402d518621b4aa7fddbbc05d959e3eb5429011fcbc0b75fb0c3c246ee84df0b2d27f09a7d84a50ff20d4ab3d79791e2cd28122edde281e9106585cd8c7fe58e928e675e5a748364f0e576cef014121b3140857b523f3aaada2c9858046d785ffd959cd13c164615fb294726f5ff1325024c6bb9c24df0b5df8917525e5f6036beb0aef20bf48a5cd65fe3b26d72dcb2d0d53818a405509351809e3cd894fbb959b814824bda95d2ab62af5a316a14e14c7d5176febd7381ccf59b0391877cf7b8138af09d4f397ced91a2b004f37ff00e250bba22ad759d87044c3edb36a5e091c9946932f8f66f363d65e67a026d35d7f137dd8c3d38ee4144741d5871f3a46dfed151779295e25930b19eb463044769351c10c74a4e0fd51abfde72224e11b8a2346df11a6ddcc4fce453d06aa93550b1fc00245b4b04bcd407008b71e5091aadac65a4ad44d94e2a1d535ca863eadc30455a8ce830e2629ce15c508bf7c6fb4f1bbb34b4f3ce116cf0da9d25a1f19b5da023024f9785a2c04dd358d1bcecc53b7a3db9fce4b0b6f765d1e10aafa2bdbb3bf233ff3e581e82ee573174b347920fe413636995f950c55b156a403adc0b8de105eb1d3452d8bc0dd451c4aa75cac2d50ad75bfe9786b87b56a1c2aa1da672ddbfc64b87dc765dafdb3dfd3b46f78a72d7cb5423b031d141caa67f989820cdda183f6d5cffde3facdc3fc372e945dbed45fdb3798561e9fcb251b7aea357a13da1fac660cc71ed2afee421128d51f3dec96b9f9bf7ecdd9e29d0257906be5296edbead678d99c27e602b52f033ceca98291ec63a33281be0e79d1c7f8a5c387e11652e7fbe9e29525a8608562135e5127150fc30f8d39339030a41229847fd0110df35f30e8c7e91da0a5402443195fbabd013f1d387e39daed92154c9470d399390986d9034ba4cd745feac6b972a3c7279e747860757d06b8d89947dc6e8dcce610e5ecd805c6e6294a10bdca5ee8ab69d99d5b74fccc674db7b92dcb27478b85fcbf55aae33dd16861d2678813cd9778bd7a7f9b5e282f4a08e64202920ab803150c4c2d8ce254c453b7e1d66067a089fa31352fb9040396696b682d034b71d87f95d3385ef69ca6af1af43adcd21b56c7e694908e5019070c228a3d18a505c2285a5325d329a7027bf5b851613ea1a8575d12d6a8c1ba0c373aa6ffe10bebaf9c914c4052b78608729783baa33db79765fe27d886e0577e80a217d6c20d486249e5715dbb4712d3330c5c3ec6c04ca0de6e66c978f404fb075d6932eb509482c2c0a65e56c83691dc38aa069677684aaa69e1ef5ab3a8277138f8fca1f77e4783adbc3d6bc77d9af356a42b0a2a0ccd893c38756d65c7727daf295d9eab799e0ead0950cf17b8feb3458ce7d7c876183f1cfeda333a52db8b15c8ee3369b74730420d2e66dd5d24eb7d68d46d05946a1d0756b4f0ceba7a9cc0a865383c361595176e7b6e5586359a07d3d2ad3b30c89f2bd430451ad840a356d3f97e659a9d22dfeaedd4d3be9a17547d167b22a481e0269c8b7a27676b9d1d9eb7e1fea3e5e178b09ba3c0c69f1f7ea406c4b51c1e1804483f4b7cc14fba51164ddbb49dc0a3abe8bcb9d541a41ed2333ce992dd02f4ac1e6c536b953605f31aa6673a91c9f78be44651d849579ef17023cdcc45ee98a407542970edc1e4fda0b21e4016747e429a9c083a59fccef39bd0e86d32b5666ac11fbb24fc20c9324a64e891b295ab3415f51188220560c3ba64384a3ee66391df1d397058814953d236beb52a622a09cde838637726f1a4ebdf9a47cd7aae1c8062c2d37b4439466ec826fc58e809552aecc1cfa1c401f4bb07a04f4aa1886ff2f3831f58b6e7bd8173e2afb3e65efbd3ddc721b8390a3de9a083224a3c01bd1931678730eef768588e557c14b9be41a204716bb977bd3454bd76538c6dd26f4d35ea54bd4636e791e287d541f84c90a19617c9a1278f2a22d70e9019bb6577efbb2834ef3aadbae872f48d96c29d15d119456e2f14b31dfe95f01a5698cf095fb8d085e482b26e7e1e7fca562a76c470d0de63e776b04b0edcbf1bf30a91ce6cd52362690b89caee2de2f9360d2d69f44249f7c356b9ff6668164a030969c25ae101b08109b2ea552a8306fb843ac3e65ccabdae50af64ee80cc5700bf0088f15c7318cdc329f3ddca6aa6d84c3d6788c0df4bab37c77088c8c61875d578869fba5f23931bd5b16e0223a4e7958da4bccaf12d1e2cc73a2a3070f8cb215c70c71978ca39196799875747358316f91b5f5389940e2d889a69cb35ee83c0529f3b1fc1669d839d96d9edd682474c18a493508e4b7a4215e9f556549edf61851501cf5ac043cd698f0675e35633ecfa73f4a6a0e64cdf75127152f57ff2ba82f3750b0ea88bc6d65a15839b0cbbb3c44aaaa12a79a449946b1dbf8942f79219ceace56ab47ea5297d43440cb319fbe505dcdde3df65e3ad60a7ab3c50fca69ee5b6713b777743b05786418d1db07afedf7da9f5705793e162ff1df825301c7308bba2ea56eba9960c87e757131ba2cc8399175d9e0bb981064857ed6df8b10ddb71950e47b97dc2fab50772758ac2e92e8ad2178aee4348f0b1fbbdc16c69349c8346780ab5f2b02f279b2293fde23fc3a9135d59ec267e6bf37805dea3e91d30bab09ab828dcbe8b1470f598da4baf580827786a0debc9d9c5fe3411eec421aceb5d281b187319986ddbdaf7da81f40dfc3ce4f3454ce7c506613a92341ca6a31a9f1d8247d0952087b59e08d5205f380ef946c920f7b7572fb725e18c6cee25aa0c438a6f74dd48f2d18e162af1106423b0c7081872142b7c12eaaba288a1daa273b4ec43917bdd93c73ab6ab874c886fae246c15a3a36f862b9feebed7e867c6e0b4d78e94d13bdcd17d57f09012984a6387f754db6e75345993a9fe388fb7812ddbe905397d25359e147d2884818e9413de80e9a66a23bed37655cb5a17205e08cfcf9bd6ca7ae3e0de365e7feff22d8ff0d60257bee05afe69bb916ad110103391ba12522c6bf5a42117b4bbe29880d47d53bc38d566b6ab45e6894ec71763f3930cc0062f4726c5fee3cc0b9e93bc1e5d6a2e8c08fd55cdb3981435d338301747ed3123aad96495d6d129234222dcabb3f0e63e331397340a4adca298bab530bfdd6369704d11fa84d9456f78e7c8f24fd8903176fdbd0b6004cc330f28b3d489ad5b5e1b526281a832f4ce1fdae45fd7c28857952a9c8dcba0ebe6c141071eac2d44f02daa348ab42c6e0f9f0b26ffacd386628a94c022fb5250d8cf932630b0c584684639255e69b4aafadcf965207edf6ff12656a8a7fe12c85077266d572e7b2725f6da66973598e13d99099152d3097d8df1f40d20d1d510bc2a17cc4f423fe532e8c45040b05a7ea9ceb9600d5fb794627501bd18bcbe69b5f3a7f1b54376acba4d7c1c746282509a116efafa60a196031efbd27050e94b8fa52159a7277174fae73739e9bfd69ee744f011e74c2f01d444749f2e7a6708190d0b235d2a7d2cf77b99f1b9c072634eadc92c35e35703e1902889bc2ba409bccad2e4d4da0088b3782c1da0b7ca7871bc721756285fcfdd86bdc756fd342afa383694b87517c00e3cd34049d9f5f5bf5ba97eec39db8c93c50ff74bd52283621ff1c225be85c1773cd1c317e7a4eba5ae1825c7661f5496654b68575c80c9c3b1bc2e374364f0f2bddafe39651bb95aabab9b57adbe32a9c86ebe09a8b029bdedcba43cce4266008af667aec777de04eed53a710f43e72068900f22ecbf129988ee5b8f022ee0c0c812f770f98d641fcebd7237dc526740e727a8210df5527c8aaf2b8beed939efb4204b1b95977c33440f2847e93ad45d19ab745865b9b56a6bfaf71cd8218b2b91a49f9a52d222a177edb376733275633181643c367f09a16c21093955e729a872cd66f690c0eb3aa5d5ec304b0e2a6c47d0aac18a9d6b41c8a33879c25239889ac7220ed03a1d9c3c859d0ec3be4145b4b8044f137dcde3b28b86c4b246935222b03af1f6f27967e74ec675d91db1630810e141779024461cf7610acdbdcfa8a74eeb1f0e42a7c5b64afade2473f6af789068b48e3ad64666a8c2b8b8e3bc9eddd466671c7320f1aa387b720f05b8ba04c53b6354dd6312f440269b084e3edb7ce7fbd9ab4bcc45ba46d5bef9e9000742d16be6f8e39d022440c9d70704ce6e6455c71d021b02afc52e2a0f649749a73ece7b78593caee733a54caf3f0a8cfafff23029cd0ef3e7523e32a929154edd54b71d3d2237e23ce3c835c3360e558de27e9c180635036c076ef83a0aa9aa318d5a1e50f451f68235c689a818acc028b48afa0b67d30ebc7ee718e5ebf7d48eeaafee1bfb2ae3cea849dcfa7aa3c5abcc97ea7d12f6bf6e4f921f29e08afa832d0293f9ffd16ba3665b952a7a57170f536e3073a38fcb52139bdb5e0e5fe32ade097f347fc5a3c32f3b3c7c2e83e86eb150f71040f9fa90b3ce4ac82c6997b5f5d00fb986dc34a2e2eba81d68156e693a668255bbd45fd5ad321f355ac3501105ee6dc4bee1c244482acc6e140f56889b4c6fa1ee04c3901ca5967671fa9b69dbe2fa24d45166696d546c65b0823458ba1096c69ded0fd9354b98df8e337efa90e3ce45c6b1c3b73bf85e9211dd09eccab0b4769e51185c964e58ba7e030587c0a6dc9207e0cd2d9da3fe8e8648265a4d196d0b47b2b31c1a5f9a8d6fe1c911f73c2670bf0eb2627279a9ce38e23486b0ef569d48879022cd1a598394635365bc30fa479786324ac7a089c9e17bfb9cc7c34859c765cb5e6dc9c57c3085566bc3854141673058225f0b12263b103bf51dc7dfb1c4170b0cba839392442b3db81cb7fc11fc51f3273b640049d17819e8466d0b0cea5aa1cb3e2dae99332691b0c50947396be7cb9e40455af3a4ebcff8d4d4496f3ccc5044ad77598674bb4e2fe1ea8ef3fd08c4196d729369f437852512e03a65e467796d85c48a314753e4ef46eb3891a70f281bc2a27152fd3494b752eb9f38c6dd6eac85025ae6554fa84b8201253cb2f9eccb32719cbf3356e265284655d30f11b49df0e97186d4ab836f2188fd934c0bc7720d54639f39ead63bcdabd940f537af45415584c6fa2f27a2eb8284b0a57b7a5833c47020a0d10601d9634a23ff30ce2116a5635115a0831dca228f249a166dcbe1afb9b805605875f72ed46820be5cc5981475d0a522d10eb524e64db13ef9c0e5f4a8becd30ad613c4cbd98bfcf15343668d348a472cdb923776352b4a72fa11878b4d7f7e774023791b5120f5e80f313e98727cbd4cefb88de7480c4dfbb0d8a914aeb34110e7e879c861d8ce2a24598411c232772ba219f823fe77e2a78ce5fbfa43301ede0ad14aea992a326ee087cf7d0f66be3998bbab7eb8cd81f70ef1ae68963daa3c38737beb55bd801f8c3e18b64fcfbaef2f26de54dc640e2c484decf40e4a9caf4a72db7214cb0790dde931fcb8de6ab5b33d6e6091d32a90228b457cc5f737139e19644c56a0cf358f270a676620139aebbc3da04561190e6c66b98c59f6c9c1abf604b00092a20031b3b2751c6ba3d765746b812f17417b8216c22a8c15bb4a33d56d04d7db01ebbf6752febdbdc92492eb58bcd4c07a9d8f4afae39e43b340dd3dc77ce3c7aceee2265da9a0282797dd96c8cb2f161d884e3bbec911caeee8d414157d0b4e616b230507cb1637df4c5e509a8f5453cdd76504f80048ba93faea07ac4bdc08e68c276a6e06fe145c9ebd6754970d1c5a18a43831c1ec2a7e5bc206114695ab65d290970e971933eeec5ec027e288c26ebbf71488e526000cb11863f08d992ee67f4e8198eae686c0b7c8740f0294b0f7f7d7f9d9201d4335143f5a8cc0191f9d71a1dfedde195c9ee520f2fdedb16ab9faf9dbf54feaa3e65d4c4166106c0ef9e1130b45a66599ac471a85ef084a954b3140452435f290949faffd65582644247b23651d3dc38108f382bbdcd41e906a19063ec0c6a78989f1fa0e0ec106793f15ac3fe059e051b6a24f0e2ca5aad55d38fed3ee9a0bf88c85f1e6f933b2f635cbf11fab421615e783e1d0943cf0ebda569585fcaa639de11afc279181edc9bbb29b5db055d8a494251610d3d47becb67a18bfb41ba1cb2bff35a81a42174bee5df90bef00a788763932f127cc4e27e41acb3c13f958c2fad16c2c259539d5f3e1b88adfcaab1daa9ca9b171ede91a697ecf3d29ea4a4e0666c194bb96ed68852d6acc2da213bb8479f44bae3812168a104179b2233691eb071ffddef206194ea6f2bc0f739906983ab5107aae2d68d18318fcdf9aa7108fa291f1a432fba921771551ffbe1792f21455e8846573a53dbeb3f9144433766f9e5f70b0794541f2afad164a7c979b5cbd2f97ba0a994ed91d11f288990e697b4b7e7d4bff5233058d695dfb0d1e7139ecc2a5c3b210a5b5188806901989fe3bc4edb08243ed8058543d75ebf753977a0ded59d8548264d9000666180dbe0c915d06b6cdb12ff81cf12bb86538d89ba0f168c9530a342cb67a07b13cac13e4e7311022689544c3bf01d3430982111fe3365823d40c45c7858f620b121588a5da770b2ec6dcac0af86f9c2f1ee19d65f5cd32ace8d3cd17d3f69b60f6ba84a72379fde56ebebf890212d6e7fea7ab6046828c102de51d6ffb643d28d93f159760b07c8c9c35cacb1df912a87dab2414f73f3cba22e40a6a1c047b20041671e865ec252fdded03be10011a3110677f7bed7c6ad8d7ad30655e311ef0622476588d4c7514f161ac45bb80ff8e1a1e80ac7535bbb5511e34416554cd89d4d963dc91f9f9d969040fc5c89aaeed86c4a77c9e19dba20be6414a43e47d25b0a2f6283a1383a6538e6ca6d241e6c194c73a4e6caef17403a29b3bb36624d70ed412173c25144ce6fefeb1d1ee71e53723b4236e320b5bf96103af7179b348da8a388fe91bdee9c0c9d623d8eb69b80273c7c065feef6fccb00bfda8064288272c09145f3db68a9d09097375be603dbe47ad8cb4fd78f72f09888652a5b30783b479f42af10921ae1490cda1b2a29aea037538260bcf96f672a2bf822565afdcc80ce7f4dac9e694df3db4a09862ea4680f7a581f994872b3592fd674a8d02ac20577ded7128b4002a7b328f035ba31be37903a5548c7ff95631f4249684d798152c344c2bc785d316d60e1f5253f8afd2b246bca76b60124c97c5e94bb9523605a2e12078ca816f5d0bb37b6d232dd9d53514ba61ac5d8e9afc89252184ae8fc4671137234f904e8a683d90499fe7e38339937d7a5fe1fdd4706131807e9d28335dac6a5d3798c479663436e7fed789b8cae47c72f1b2fe6a4d20fbdf870207d3aa7dc761a4fbac9d3e6f01814d52f5edb1ea5ec69d895fb6f8c86e7ffdec39ef82cb29263f2159c0598efe8b87e754cbb4ee77bb2ffa04032280fa836cde48339513917cca697707ce0e56c7db549acb751fc3f7f0c383e1f32eb7cd1c85ba23225e4f5da595a93a3f88aa0b283b0364a34140f1211e8470d7fdfcce6b8d47b5538084f73181c157dfd0218e679977206836af6600fb6ae253de66e56a53c0d52258966efb94505a64fafb22391f0678eed2e0e5e094c024225aa9ccddb1f56fce876bee1cb24800b11ec2381f94fcf53105b5d07c3c86a5851e8c94dec71056a956b7f62a1c19778cee487dc457a92e35e325ca4d71d7856ec845cba8896b868e328643c5cb45c079fe19cfb502f9941284542496212471d32bfd3913bc27a89f7beb762d206aef39edb0cafca4d841c2baf0a19a5b45393b7e873537990f96d80083002c9dc944055ff584532fcea9d143106a2e1540dd159fd49b09701e5f16a7463f31224e87af77d50d38f9e34bbe146e0410fbc92ab2ca78bcb1d90d3e7988ff2bcd414254da0331b4d03207359dd15c3d7cf80e01c12f8ea1444ee347133260540ba23d47ac9ec5e049b02af6dbe7238567ac20ba7f09198d393723ffd041b34a8730d6be4858bff2ca07b234c20ff3a59e580f75fdb735fbdd49bfe8b483222e24670afd688e33a348e0662be966f275012d542866867a72e704b122d96374e817ca81baa39c8dcfc5483fbe6616316b6eaedaa7e18214d9da051de8f0c9a3b5b12daeeb3c7bf6bd5d5c94a676e6a389a54f017bbd5d4b3cffd4d09dacc2bf90df94a7e4c4610d272680d305904dfba9032241a339dd43e74119699e50c0db2c09c94bcd1b5795e9294c4efb2c63eae1f2be1c0fd20908bd7917400aa1de83c764406176a938ab3e165955e9f2b639904f427a27671bd028bc26e804f5a50ed53a64a0110606f5d02525a04df02391d37819d399c8fcdb8bcf0b00cbf37921922256c7cff9316a3a555a77e5da666b8839541b049db95ce668dc659bd538026c0707c62d79d7efdbb8d1b883e15a4070ae654e600479831eaf76aa3ad408f3ace50d7f075823ca4461498ed3614896083a4964df9452b2b76b3a3d5c91ee30bc38afc74d8153974b737a5c109b475847a88596a4250c4f2755fd9262c76b702c75aaa8378d42858c90fef316159095320a7029a91cf99cd6ab71b179d6227333da68c5a7adad3609294e834f87acb1cd582222f7405b459bba9061e08032314cfed987130943b4096db85b10ef5cea3aaeb2cc62d5b990f1364de5d3d9c7c2c1c4747bfda3d4fd81c4eae47c6d887cd8635bad7fa29d5252d48efca0d4684e82df81701282e1a634af91c070e0134927829e78d2807d8d197a1c69fd1ff73282e8d59575a1c68d435949bb5c70459411839cb7f0f30ab1815e33fabf4e6a0b54dedb5ae571d65fc640f8252ded2dd7ed1bf57b8c238bc3bcc6fb3c1fe1bd8cf8cec404c58d4124e75fbd1881a7aa7ac1c8ec1b87be4f0220ec988ee54e59d9688e937890012450602d569fa0d13ea2734561f4c88dbadbf9039fe76bb34a916d8070e742db4da261ea0d482b3bcb6884918b84332291fcd259f4de45ae34142617b629375f0ba82a2639707a3143f6a971f26727faf458735987447855f1b0420bff4ddb117cb9d6b29cce719bb8ae0b4b718bdab9584f94488188e7029693f8cca7716dbc7d08c815d62a5a243d1124a360dc139c344bbb489877dd15ebd42c4b31c893c0f4070ffb1baa12be1c4c074f99d5966b6055d7876a5d7b7b10c6a14379715e44188db3c0631b22bd4ed8acd3d4bf3527fee2d9e7bd1e11d8d3cab410791468f2d8059c54063d28c4546d1e3542c0deab8322772412731672837c76f581b62ee0362e7fd8fb3f1963c4dcd7a0b748d0507ac9a0e23f41ada7c6493df89e9bcb467e15e893639b19e14bea81ca2a284508c31b8339739d2f894fa01e54d7e9b6f24704556677e1517991fba224518bfbbe5b39e40dd93f01b2207a0910b279bb09750c823697d5c3a1821940e2c6e1ad57724a08aa377c45ed3f33c89f5eaa000fbe13d6cbb793b44f690d03ee840242c18be1d6422c70cf6a89af937cbffacc66213765e78160d75923f3cdb752f470065ccc5f661b50de3182e1d842a16e54ed3ddad3f8d5f6db228e2ed892b25c69cfcad122e6fcfd9b54abe871812a1d7017ff3fab68d17c1ab41835f9517a5306916e6805a47d1148647cca9596f01f0b0e59d09721a889246289630ce3a34b4a0d3dfd5613f71b6f6813afab0a7c155c927d653a3a8b595be11448026d9cdef00b29828084cc8e997625b8ee8e63ca099ba5969ade13b0c32c4360fba7bf36f431bded5d7b208f5957c4fe687823d709592e92190eb2e638b09504e630be6f62b0b279903705100f2f3a68f0badef87d90c5f4fd3250498d7924bb7264bb0982df6f6ce848efef88ead012914105789480cda16dd0ef17542d9d835db5f0eda3dab03b419dc4ffbb1cd7bc077d43f1e830a8d235ca4ac56ac18c481275834cd3defadcdc4ef2dfe4cb986a8f27c057bb420538c703fdbf711f6f8cf347534dfc0431f5e6186044affa0ad0492d3fbbe1a85f3139e4324cdc1c084c3fe6892b438227902526892ce61ff2bd987ba077e5f8b142f05b476077bac881f0fa931185d00ba8b6910c18d41cf60feae6fbb56e0b26fb73acaa48ec335a229e989afc0d80e91a8467f4c989e145b9e5e99acc8fbbdee15749bb3dddeaba0e43732428ecb903619a110f2edf8638206680ba0376945740b10907b599f35ecaf2391f50a4670ab33a12112cb18e75c1263cb847abc145682acbe64b76fa42a4da6089a23b1464cd99b8f57c42d51faca0d4452519586c3106be6abd9eafe3ad035374d2156af7f73281acaf820ee467f0a407df370f9b99016e8546e6991d76541ecbe7484c358e922326ada5577ab919d62cd843ffe6836047495563c58c6c9d515bbc0f5bd10d77646a08303f6f0f092afb36bf714d9b3b1d9897c5d022ac482de0484e0e8efd59a01416e78f34529dccb4234fa11a4e58722491d70d09d94a61587e97dcf20924479bcf6d10d123c7c9336cae9bdf52486f7df69b14c32a8f86faee838d2a460bbea3d8ae2cbd2b5ad5588226202bced949b0839e9b669e18d43698da1bea5cfc39a4e31532b64ffc0ff612b411b773d70753102c5e20162c7601aa0d11add41cf478b6e7626c6f28466313d90e1dc60ab03c1e02997a4e5e96c894cbc0f557025a87935033f7efec26298ce535b422f45b3dfe23082a3356d76914274dff1c37884229f6dbcde3d51a5c63b25a8187345b772807a7f6f5951c4467cfb81b1b523bf8265d73f59fd9712141662c733029194975fabb86ee9ed6d48b9f9096229a1617d516818333215b356a5fc0e72cb6fd4b6e51a88debcd47402ceef161ee427c728cf181cdf0ca959cd0604103cdd59295cbfd10a82076ae3170a52d665fe135ee9168cce76418eb129cc7ae444566011e8f9454f1633d5e55abca7de19e9e161eb5774194a4e40322537d6bf5ce3386090a7549b4f46c83bd8bebe0dba2698d18ae392d9b83176389cb9d2282d6c00b9923ae4803a4d605e28a0b932938b5ebf28a0884dffbb4a2c52f2d32944b794f63d1b09a7657c4ade84b074ec57d6e95126e03af5d6d242a907331c2dde35f2092537e91228f8130364c24b3d5cb69c1578d7913e558f2e400df0aa237cefea717441e0378d740650cb2dd14ef32f79a2075f3c7d5e3b970a2ce7f58834603bb10febf79446ed73dbb6966332b8a176aa47651a54c6d43524bc1e60cadd6d4af02211c6de9114c520856dac3ac456bcd559f88406dbb9af412ed0f01a2de4f73d1a61c2c79e62a4082fcc584545f6181e37c691c894792a9cdbcdea4af492f5eb19788186c4efffd033d5815c568f25442d5df96cafc970fd81df3784959e46178269482dcd79e66f710393a94e97210f58893d65595209893c6bbe60cf17e3ee391a9634b84defcc0d565425c3d7f4b0284534a7d42241ae7a61f7ade378963dede2b3ccd709c54be6db21d97177d0fe3e764e8b253e887939c1ff7c7f0c56dfd4b1b10781cf74e7251a34b93becd37ef87c644ccd22801513f695847d25f9fb41cc5bd9de1042c23401e73534202b8630e757ebb342feacba5bdcf98af3303096f829e1d8a9a66227670c8e42b974690672c7abd94ab83af53e480fd33995ad5b988c18a23f094d916ccd70e59815739b324ad2479ba9a2268113477d627b7db4241de91b71b3fc8e02c99575f370088c6bbe58f3ccfee3eea593e560dad0a3e1e89fc3d591c87b612d442b9603c01ac33b9b509e67e4c783bccb69383f2200a6b7018e44f2204e6e38dfc5eacb76dba67e4c5e2dc6e4ed3e9ad975f8aa6c25eef6db6a26304afaf8da5b2d62af49dd2ce0e54832c9ac91976f45993bd887306666c3009bd5b5ca8f1a349466f6658a97636f827a2e638c8d4706c8f6c3ffb6c81dc15c85b6f8145ab2ae917908f46b71557918c4768c088e868c4516532a3480ad838ab768ab48902e72746b29bf9035a03b3eff893e2db3c3f666f87cd54ac5b9a93d7d4da6fdcbfb771fbbf9f4f0ee1cc0a1cf5b61729f032118327552aada363413ac63c5de376c2bd943745a20da4e5b6a53f19faf96ba42a450dd1c643255f3a9eb7862a0a4adc21f5cdc1536cb27a570377aa1d9a76a9a922e84dc2ee9d245ee18df2fa01e0a57b9167a3d1792ad008e8b488ecb786c6bbeb45455996dfa47a02dd3df0b9b40a0c9f1f68a2221e2d338a0ecc21cdfabc41a8bc2bf373f5ec0156462275172f3cc89b925d046bbe012c4ef34f34dc7ae0b9e6f4a5f9ca1a8f74bec37a8a41870ec82ff7871adddaab40e7d2d2d7d654dfea735e868f54fc08fb1210f0097c33362045b911901b2cf8b7d12de0a4cafe054c628951769a307b4d6d5ec7d434078e751591e83f80601df5871f58edb728686a3b778af516addc35eee2f80c0514bfc95efc612f76a8253869b0a88d06cbd77b8bbb20b041f5bdebc810de025beb09d2cad3f01389f9f993cc00ddbf33abba95e3737218935f6563b6d3e5f58cb653b7c432f60fe40ab9bc451cf1966b63527de0408f81fe00ba1e15f7d75cea659d120600936fc5995fd979f9679f2e8fae67eecb7015ada59f0eebd7433246f61eeb823b1fb7759857fd565e6ec8deb35ac143a80305265dab59ac78d0bb71d6f8afaa53c9259b2455bc8a89ad31953e28573db053af92f6640505aeaa5d132699c2b6ba355f665f0a35c649c6a4e7fd80b79880badbf28b9843faed32a8fcd00620a3db03c17d8d609f22075ff3848d078028ea69e4c798c7c3b9b8be34765e09fff34727aa197de46655f6b9a721ac61a605bb6c0b4d95630bc897fd449b149a3a9a271b9a19ef10020882f3454518167df31c1f02600b328e278cf6f4351c51981c4882670bb4c592f45216a3a5ed3a06933d773a2a03f055d3b32da077d4747962391dd4465aef219a0dbfd3b8441a653caeabe22031aa7023504a49ed3ac9228259c8584c43e63f3b19130cf0262575048c06826afff721a79a26955245b82f6dc8b74784e6fc279d66ecc0495e171dedb5722f94cd7e80767a6ad3c1631308cbef5fb5a1f4adc20643c44543eb55b22f86a7658d11d9e099497d012600580cbfb8cff50d7ce964e3b2b9ae28c52e96929f2b5d362f6b193983d108fc8929c4102bc7d475c458e8a82056c3c29ac5009b9dae3df9aacafc0a522843e290a0de3a73541496af40d4c9aa0b23b1793b2e509352300424060976030b94de00613f1930a84acf6b8d2f59af02406cdb312107881670acca85796b563bfd1007301469d45a481b0c442bbc168defe4479351c5c82aa8d8f4ef9c90639d8b30e1aea4782150adddc9d6fb5440136cce19cd91a3828f20a5270d327b0f04c7d5b8af81b10227daa6d64ac242c18181a0329211b7d712b546178a7dfaaad9b19cdc6b5bf1a9e9b62b849f066ab0fba686da3cd64faf9b7874910c246df234dbf06738654921d3b9ec972d5bcdca24e88c5aa8c864e04c8101eb7f2432ed03b002b6aac59bbf37f58a2501b2b8ccbdf6713be674ec272297a3a5257f3dc038b72649316f6fe1160ca7f20ae8614f2ca703451fcf316d3b123dc68dd4ea6ebc982c60c16e6dce6def49b2e7804a60ee0bf3697999ae0b6a67e2283448ed0557c0433f9d6b83aa957e499a116870be45d96b6193c8d0cf1796468e941467ba3618391e46970657607facb7f7684670768be5b2de37394d8fb878f249dfc843edce3190e717c40d3be145ed770970848a11df0230961bcabb0ae9bdb06c0740e029da6ce9be4b5ebd848083180768f2e3315b48a2245d2a0ce2bd4eed8d11d9d73168897cf83a30500c5733b00b42145a4fb1ff9d966689207184b11930209416b4e4ffcdaa05b21c67e187cca7437465345c46f366782da0f78050758d548c0a26c3ce115d34d3661a1cf6a21e2347bb20fa129fe637a6550921b24a931e45b0b12f188313346cac716d1fd6b5477babf9adfa7f321c0a9f96d63cc2e197507edd830f095b59ece208c0c6443bc62173e8404164dff2034d9eef8d58829b8f425a1c3b499d79ba052af3c9710ff197092bf4bf9e7cc2ae69c9b5a22703f844580c5e8d3c2d62cb1777d2f3b31fad37ff0bd3bbeb46836f40f38c766e4ab0d93f06bd34254b8ce663cdfa0c854a937f2c61dddd3eded85a606b023bdfb72870a2e6659796b06ed7cf67201f30154218b28fec3c08e0b390cb7e79b8ebf25aab9c1e62d0c3de5ab17172c0ce857472478a7a6e1ffbdcb9af34748bf3cacf6d02cf596fc60107df3ff17d1c3ff1952ac0bc8be5df04f819ccb3da7f2bfe33f734717ff261d5d4ee58688422c76d56d3076976bf26ab44bbe8a73dd04bf4c2a0783fa77427c47c45c0d5fbf3bc6805a0b7e2f7b4afdd5b6f50783490510b95bacf53c386ac6b76c2e1275d7ba16d9536fb013d088a778e2fefdac42054e922187f33eb57c1da7ecc872191d9eaf435ee1a6609a21cc4050d1b8e9897c07c45cf8376e71e67902eb74ff0ade0bd0a05797254224a35837dc6ce234e6827425263496c093d75c6de4c79e42d40e2ce0d99e9b2d80949e6c4228851b78398189d76696e35fc721aedccaa5463b7a3948dec3b1b723e35840e3d809d2a4eccc34d53cdf368b2914ed5288139fd69f494583891283a7515c6b81af66f4ed2c6d3cb5bd9c30d38d90f70eb52a783ffc2238785af4860d78607f775a32b8b079be6238d320f10e94189d195b708206e1e6cec5dd029f3456ad0651d494b47904c598376f0b80947fbad62148273142c157a6ff58f9f0339a57f6aae7ff43566f570eb7cac2dc5da718fc9577c52f17324595accdeb49440abacafb33dbb19820036a10a3e8442e21b69efb727c4ead108b1379cfea4b647456f954c9d070d028ce1ed5b5974bdbd4102fb59c9ba419d4d6b1d814611a8768ca3a03ca59ba27647ff7bfff8108c0652aa55b10a527bfdf31e0c93fcb0145390f101ff99b904a9a9d89ba0cebb904f892916f6fce9dff97a32d4dbf637dc3a894d677d8ffd438e8255b9cfb79b53e65e239eb2eb7617a2981b9c9c54ba63ac98a2dcf9ad6bf2367818da441c7dc8e8d3bc2c2122d85523465b9875705aa028d23e625bc6a2dbffcbf60d23e55e571a9914d44f95ba8696c858a7dfd921ce8b5145e3e186032dc7fe9b34a8d36f879c4e9f253d799aa0916890048ffc0714985f50a6746637c31246a46d7878f59e8c569e0db32943b8884e87d987e664e309fecbfb9ffa720260a520009cf468f1cd91b8b1b3caa695b8136723bfc35fb774160ad8c481a3c1174c35cb0e2eb242c3f653ef8d5f9d2b95c805008f67a3063a550ed2f153cf190d289bc397c3dcf9a6bf609c9e4b784b9962738d2d0dc98a5d1971e891a9b24bf745099e2b4109507310bd826e03a5e4a4b12d55e1494173d4df2e37ae0a335e82bf33e9c7378f8ff7ec485ce0cef16edbffbc51f51ee82bb90f2227a653a1157019981eb2c06467f92725d3451bc00aae1c1cd471f89c71cc0c7544e5a90202fcd24e5037c2718ccd88a58e61de1fa9475d4e2bb98ccd1c2bab9fa1be622ac10112dad08f97676d8f99959660c2a1e45d8fda9851276883e4c475d2df9a6ab9cb100249f09a7cd07fa67db8d105504c136bceba4ec77c883e62595a04257b70022b363aabfef4bde5ade5b9f3db2aadf6de9bfc130b256af5972a6bc59a419fdc4590c139d73ce1dd1dbcdfccabb963c22d3aa163b19bde0fe285607a1bc03d6b9c346e7d345b3b5046a433a217384e29ffec11b2a0a8bf4a5530d67022fed985f92ca6d3e0f460931a9939d54ca75c3aad122638d76d6ab34ab900ff370cbe14f5da37aeb8a3759d9d2ba046b53ec67888269e133762033c1fc0c4e6e53ac133a963b8270ce68e059a28d714320fc36c8638b5ef4525a832cb7fca75fe1883e1ebdfbb9d7a8775ff2be783ec75bd429d469386e946f6bbb64fbc14aaff372d137ac8febc4e7bc94ef3566100c9a4b91462224fa049397e58b5fdd1067b95b98407f0949bbca12a61cc6a13ebf36beb2cb75365a6d94a129ef400909e8d40b5d613f24ff187bb5af0e58b168af39517fe227ff176de91d6a029cd32742ee51f9f812dbb1cd7f82dc26ac8224c1e2fea74fd8d15afc8cf5367132bf8b2c4898a94feef9a2f4ef246b2f23528c57e01f52d3fd845954c859c345016963d7d0989fa3fb5247e823afc54d8d81356cf5eb7a83db148fc323e74c5a06f706507f21043fa010ddd58cc8391a9fc39bab4b46dbc49b0a869b8c385e8a74df182861257ba893e6d6def63a501bb5df270df9cbd94eb963865041ff59ba858be7b94984d144335a2dbad69419efc142e159f20a20af8b8e09a91c8497b724e969acc7336ba73bcd60908287a7aa1e8c03766d4d134808bfc0fbe75133269fe8b5c88820edbd4273ce93432b213458f5ebffe3bfa7aaa6fcb3597141682f2ff5c4dacc6105ae8d961e8d2095b5beaa160bba5862059bc7b6491237891b43fc218ffad2d18a9f98bef8f413d57280a95cfe3026a31c9ab4d5be534d5be1ded442e4422097d50a3ce68282e8fd8478778c9c4046bbfecb8ecef0001094a724383580704a95514fde99fdcbaffd96419c99c1fe2b244a37c8d5585f5602ee946be0a53da44964cff1d8b246d3e41a89b8ace66a925692ead7e36b118712770ad6b5100c7e7180faf745a43b483bdcd306c0daa2457aa9e3405ca39e669104d89a79659a686c9be4950468aeee00d7404a3e5285ff969aa9bc030fec65073198145eab347969b6d9ea2fee0b8e77c2c58e374ed4fe4c010eb46c4f0e4f4ffcdcdfa581855a2b3374457350e8f337b7255bfc469f4d288182e666ede759ac49404622d637a5744a189bb37191b1959b67988b0c1e657adda157edbe0b8f3193482754557a927780fea94df3b437f2aa648e903dabcf9e4682be1132e985acdfff2f2f3d7240eb1fe145e38b87c20fa014d1e731cb62c48a1aec9e3ead0ef55cf15cfcd3c4a0d5478cbce3c238af9ed28df246986cd58c00ba7022199c630e92f52ec155d47f0f94774afbd8106a9afbec6aba44626c89f3914ba77c85e0501e1dd8457a89133ed4bbacc7c38b4192a02ebf45e4f63f9fe73bed387b4a165565aa85130c227875464a06f3f4abd3f7dcca16f7654a1a4ecb85a96752616b0a2960aace5e72fbbcadc1c402d5ac760773cdb191baa372772e8ae1f5710db4966312ef4c7658930dd6a72732f1d953bb703d48dda9b1cbcfce7d539b664c0c2bb5012d7243213b823cc4a7dbb84c7789bca42ff7f8569f840bce44770d20b634f7273bb5056120ecdb1a72bf4aa304e4348f6830c9ea80673cc926840626200172620dca2ca21cf17bf4cca0be556e229c663e1e7c62e82dd88a1e259356fd8f9431dd8e597c37a923194d46b05cef593352f62374a775015c3c8debaf7e67cbfafb633b4ccfe0b0d1ee0f613f283a9c1cd7bff153c8bfa3e21483a1bde72b427130941a9d412a60b06cf5085418b529396f56f1f1c5bd7410d9fbe7ebc0e45580f9b42697f039c75ac6fba7b36560313b29ec66b33e30a7c4675436486665f3a868707754629ed8b34a5946e96bdc174d0d042c95ac28d00c90a7964ec18d3c6b174a5bc03fb2a48f801c1ae870f8779f69bf6b81df4e13872efbf5f948156fef53eb82bb22bd92f9a39ef6f3bbe525a491e01497c06be50bc3c1b558a8a6bbf17e202d2e09363086c74783c3145851b7983a95505d368cbe99d8972ac77263b5991d6c70df291a19eb6177bd80a682307985099b1be35156e40b34d6c53ae6dacfeda6121f378eb4dc67dcb6358d641812ad3e1964859d76618ed25271b17fd8f2a156c5ef391aae286dcd9989ed510bd874e63a7b3ae96be4d5f0b23974c527af9494bb23325755aa858140ce2733f1326ba6e7ca2866513042a773c76ec57d0a82bfbc5e65fbd16f308cdc14b44cd4f57e8ab26ca9939384f6f8078a367c32c1e7f39590ff6ba2127aa1b851ce66a34fcd55a571302c0b30d4ca29495d036e0634e37a511c21f099cdfe6d7d719d6417a91d741ad6103abae697c9f902357d5de731f9e87735355ab68880594d4784e6a58ad8ee5e837f692667fffc7b258a25fefab616da64e06adc3d916935d5355595bc579cfc48866e08231d5a804c8eb90f4f084a39759edd14ead8f02695f2665098a2a07e3b71116c82b94a9ea3ae7eefbce7b043fa527c8fd29bc3c3f8e41748c75afaa08b7a912b34b547ecd95b7217b34a8103670584832ed0e2836de02d350985fca13ff99f80fa1e5cd5f1f6a7fc8c48ec4844c6d4b4a45bb1897dbc69b20d7bd7575ede035229e8da75c2a5ba172ee538caf09cbb28e63928014ca195fdd0efaebb52dce29992e6b0d7fe6a897d401d284617f24355b7c9ce608b1834c0d1b62c901140e236cf52cba42d38763c626279bfb2b89f44ce65f1bda1fa11e5cae074181fdb11fb405d78da5759e6b7b688259e0de195a03a716306b146c24d99f28588da03130eb31402331c50afa65652bbfdaba6482a32407eac4d5aa91af93b9c5413dcbebb8e3dd0c7aea3545a38fba24b8012e4203d991ee1c4b82216d5cc030b6eaa01289a18e4f8d60824a0c383b40fd655d11fc59b34415a0447fbf4e407a8b836295f8712b65af53ff30e2578d0ed820e14677cf0fb6393739ce94c76f249ec144d8c73d36a06e9c91741663b0e6eaf5656fbaa65a11487c41b5e899348b75b72d59ad51fccc47cb8cb969f7ddb5630751cc7be42dcba1d28b1f9fc2ae31aa38313612a284d6be03c992e2e3f6d4153598c94ae9a89e4993c799304926c9f924c734d03cc04fec97a993fa5ec5dddb714cb65e3a957a547daceb3e949f57697115c266847a82a370d52bcff760e4e4d5b566f33fddbcdc0eff544d2486b692dd818b992f8394bb4592f6696c076a443b7caf11be059b7beb632f7d80a69c238cf65ae6687dc8bf6efcff61e183a4f343019a73ece8b9fc251aee3ba3ff3e90abd890fd66028a94c477b4445db4b885d1f698fe9dda60e01301b1515c980a8828aa87c311908c6b0e804d65c0fff2ee639a4325a5eb85709a78c2a4ed9004756cefc87f6034c10444d116b2c373d1d167953bed1081c2cc49b1bcf76b1a8baacf95199bf628bd621e642fb51fc4faeb5187ad0230d1240c4d61c7102a9f7bb29b581914a263c0aa6fef790d85dd0391b631828d39a925cf5d5b4d4f6474616591370e17d5c13c5019ef8390f191adf5458f52b67ec0aa26d96355e0f001359b973734fa3859a1b5c7edca666dff6cc738af3678f850b5c9df758e78571d172d8ea953225ac78f56cfa6625b933cdebd64ffb91dec51dfbc87c93745c27f6df62269d09da7626c802f0dd59ca69aa1c97d79407371e61731aa9e792f2ac1873ab6e7fbc9c151c155565cc6df425d17f7edf19c26c7332183632c6e86c0584220b60d6b9be63bd6b10624d12311f3f8fa3e61152bbda945acd265efbf60f6240086c35e73bf0c315474c60a9024023dc9e2606539a35cb69e2137f08c4b312960c087fc4568f066b71333ef65b879e6398f043eeaeb2f633309ad453f92271c4be32aa50e7034719d020da783395652c461e66cda335434e8bc5be127bcdfc5363f2d1ceaa15bf4be945f14406e1a5e67977eb501c436c1fba6368bc6a88ab152050dc0a82042d7d245377bf71d0e1a1706abe0b7c2ab256be8e11570087f9441c18a9093c48bd7693fdfd74fba356e9cc976aeef61a7810d5e48a000460a24daf586dcb2c8f2b8a8b18b4ae932b0f4c8ed049ecc6b623bf01a7046acbed34a42dd4be3c4c8a4d97590a2a5660c763389a951ce5bf186fa863b31ced766a6951785a3e5b7973c9fefa3ffddeaaf6f7ba6a4c171d33efa87ecb555be4b2a086ab25fefa7fb19e21fa26492b80750913b7a9036e568c44c6a18f1efdbb330905dc6c145e11747072b8baa8fe9436c1c682fa8753bf89fd41c712f65a93196a5859be96dc26a8ca92d083bbbfbf09e2b061f1795b1390e4d03bd235c111e3735ebb57eb99ff8e7018dfac6a57a51a340ff7a5e9d38d6dbe4135d9159c89258cebf9e6808f6ebb09e0f3281c3509348a150627f85312cf5fd275e22f8a4ed91dee68ad7a1ab73f950839b754cef134dbc0744b84fa54c1921d9cabd9d31c87521bbecdbabbf38d0b90dbb31d3da562196a6c8c786ae1e22e6bdf8e76c9eaca2d8cd592db0029d0602a91fe2df730e782ee25448e84977984800a77e22c53e80727ebca6a9ebc271c42886cc737c6a0797349167180cfa289e6eca1c9f3be3f9a4dbf2e7499a1b814ab4223561381b00a93146f9f0b44f4c8bf050aa436e2ace00fac03cefd8373955ac037a6245cc610f2ff30de4a67a3b24a36bcc570725414d713eece343fa5d20e1d1a2968cc5bffc7e9e57ee191fe82439a34e46a1ddcaa51f0b4e9e30132f18f3554449998b165f63d4e3b89584c7d82885672702f8abebc6d5553599b18ab29b909eb9666e6f64f9e60a7777d821e02cede53bc696a0c0044d7e21043b2f8e4fdea15fd39afa86e049613015125f750a9283c90137d34f7abfc7ea26d2c8b4a07189b962e5f54adc6e78f38b73c38d9b23db8b53ac1416780fb9a173d3e091c01e66dd01220698d2f5e7f448a65ebfbe68d6c2371838c7984c024e5730679eb6b05552a1bf96b46ef7c61596d724ba3d5ae3e760a5d78ea46209cb92b82d0934ffac875ca9b11809731001e3d9295026e0e847571d942822b5d04767b941a981c1b7b8da5c7f06f4809cd70d05d2de1fb2659d88b68baac6dc230b5bb6987f22a88643dbb4da3e25254963a8acf74c5cad303245ba39897fbc7f5e784b110d8ec54e00f79a86ceed2a15564f3e7c4aef01ff0c4a8f7f658241be66dfbe74934444c3732af710e0cea52bcb8e4de7909c832ee6cee96d852dd55fa05d98c958239d3d2da336c3278818dabb95d78948d89a7edfdea307eebfb21c350ba609d160b301539923914a59be9518f78c298a3f976b30e35f0d057943756d003bbc76f8176a2869bf17156828816776d72820e73a11bea9375f98e6eba5a5588ab6c01831d6b2700fe0e757bbd8396bcbb0476b19aafd31acad3071a6e98823ed72fb4fe63b3e438e60d2b8c6712118cc3d0b8ba2be79fe6a936db7dbeffbed6cc6cc2cd5b79112c7e873908628650ebe131e4ded05519d9298f6fab480f528eae357b17cbfb69cc5c36f25dfb3d3af4a7cae2d0903dadd33d4ba31735094294ec87ccd3ad725219ca74b5ea1ef0d5536292528fec2e427a752a0f416e3b5d60aac4e1cc7d83fcf1681e62ec952fe53b4f405ec00abb1462a5f6b1679781a6a7e15c91892a6bece4f2b29d1e4923c2a8c14f1dc7eb8a8f17ca62c23aa0e9ca8e1b5a91725e556780c34e103cb7b0ae64d96af9dfb4f1706a38c4093dc710efdae38b6ff2e28b03a73ec44fbca44fa2af2dabdd1ef319d6d89fddfcc3721cccc3a860cde8a8cc9c253f979256a509e9cea1776f3613fa3955908fe8f9a2f6515b7a53575ed74c4f4fec6e2eb5486d9ea37d2669b001ab9d1638bd4c6d40452de0543edf6d2f5be20a373aae96138df1215b51a319508a3e593e4238459f5e0a96597e4373e54e681281a74f9c69d76ef58d443a947b386a67ea30730b64777686025e5fd64ed5ffa6582072f4f10e02d5570f0750b9a165564cf3e6b2676688e9ce50b371be094a512b08e6e45e612b1a94e9e281dff7fa50f37c07772b29855986b180cc2d17bf547a853b738d20be520a4281f003bf9083664266de8de5a7b66ac85357069e3c550fd2f0987316727c649c7d4ae5c47548aa87fc7d01d046124cc6a0e5bd6487b8247823fc7a182688de7516a49214cc238ade6dcb0204e45d11db583a6c070e59c18030e5ef8783ddfac3979984c8c94334df5ef5d2b8b80d8931b8c166e2e7990fb4ce856bc908b435973edaeac6b98357d0090833856602d36d34773cb43306497132de9d4871d4a2f2d697a02fa5373fab611951ed85c1ac94001f3c22c3aa92b7bc85e45b364edde45dcfd08bee44e9b8d0591a4e06eb38a3677476dc1d687831e9ab321c206f15f473ab0cd0dc1d1b1ae10cf0d7f3f337af12115a099754998a920ae4421353a7103de733914f7e67f2d6f8e085c99a61f1eb7b4095d35ed4cef14be796036f289453c3798ae749a96d99bcddb596a43f69d41c869cf91e5e315eccc5491200494a6e6c7eb405a743f51848a8fcf056942d7cf45c9aa2b76e2e9a32fd7285ed58043a6e0ac27960423d8e73e56f5a4c48eb995562ce64fa7ccf683ef499028b8a0bea665b720bf7c864a0da71fbbbba9462b0ab85232793bac9f32542a5405c9979d8fdacd22983bac81894b14b46d508a92b7dc52f5e2865cb936c1e389cfdc59515e312c8b12a30cdcf2d922c0dfabcff8d9b5aa17c2fe36c4dc338b0568d579e82cce09f6698807ec0d93155a110d83769a4d212f05ea5dda0977732d031097d1c7a1ad605600345bd1a31f8c95c4a019921545265031e0760c18036ca1483847293eedb84dbc3254141b6b284cea28883d633c45b51c55b142d926578255a37a25da282926cd98ed3f69e0204fe2abefdebe3ce00817ebcf2978790cf4b60d489006d8777253df1cea12e0402e3213102958ceefcaab6565a6adfd8036cfcc6ca72bf883e21e3f2589f516593821dcd98cf86e920191f384527dcd2b925481d65b5868e5f68dfb1575f103c54ad6a69cf9f4fede64d07b23be0734762290f2203e526fb3d9a6185468cca06426b5c68a01dcd376ea8d02b7519d0f5bb54dafb21d1e6d3197eb19aaf7519cf8a9376cff21997dbff0df0381273f8712d67130d56e4f3ec71eb785030bc16d4ed00740a694d84c85b86d9a59af63165aa8dc1022bd7ae235c0da964b7609bf75ceda499cb319ca8e62aa842e5cd663127ecda7fd1d8c5a949753e12160f53ae480718dec52b265ed90fcd7d04c4581dc01f81e6285f8fdf6cfe340887a2c0934ac423865fd09006e85f3f0791e91b8c02559f93f10d1bcde115aa5ffd687d17466d28a15fe7987e73ebdcec8141888b1ab6d8377f6b83c72b7a55bef505aa2e1a7b610cb76a47bc99e7dcf41d147926c773939c9e06a084cba1a616e21d2bb71abf04e2b55a8db5e6352e99dfcca2c312b048c5f88f96db46c6928667a12fd70bf3642ddbb8aa37d55d403a9b11a8b8d5481a14fb0567df1a15d06817b62cdd00813e6bbbc3d512b9176d638b5abb1b4ff494ba55016ec90ad81bc59aa7a83eb56591569b7de36cf4ea9362c7cb7535a9c1c97ad5054fc4659ebf30cf341069630cbdd2ee4280226e35b7d04970800c431b318286253be7ac32e2bd8f193b60dc442d66e27f59b46232f7381612960f11f38d962c53bfec2e868374abc582f6b7de7ad5d500cde90b0c35fcf37a3f51363a80069cdd0d95983efcc629e2ece7f62ab6bb93651c0e17d8895f94437a5d7fff9a3bb13a707e8c76bdf2f44bf80d2b614ea9b026021583152c7157fba3f218c865de214e1849f28dccd99034a5287c8ce4f975e61a40fff0150847ff16cfbfa4b68de8c537e59bdab17b3b9d09e5ba3174984a97a195a1b33dcd70766c9e94a3c531904e51a20c7278f20e9ffa32b9a4e6b070326187f15591d2e6cc4d0754e7309e2ef2503801b8241d76271310cf41b30f520ba23cd10553fb43eb7ba492794feacac14904fc1fb418e3629fa7e2fee98a5c25ff5c18bf5c2ecb5e6a723f6df6053f70f1e9bd5054ac81bcdf908c09763cb6b8810182f1a134f952aaebae7823a99d661313f8f6bbcea999deb24049c7217edc52d525e0ed15b385b02002ec52276cff474a8d1433f7bd1f3f5f09b8e21e118f323a23afc5737dbd57019210dad1c01de87e1b7451d09cddcce3bdc6af7f66c9232ce8c1f6be90d4e35a583f27e77beb37038fa3c14019e9321486ec42803421cbae1d80951580d4ad428de2e1e46427816fcbf74ca551497862778728e197e91dc58bfc16d6703cc131a05bca82ada7b2f64a53f6ff5977c2bc92466d04f80d5b30164953be8f55e886ade57bd0a21648b1bc2b9116b6c8470bd23ff9798c01f27804e44cdf975d57a16b0e0af297909b724e1408a32e465528222ef5c479b787702f3a9c0a05545ed5eb22fa29cc9b1bd78977cb4d270673bcea8612a9ecc8c483b827dab5c4d14c955a4defe0abae7cf0b4d06cc8fcb11f17c70c4623e3f801d0769ecd051fbe6eb152d64390deaf68094ea9d690ce05c9ee45f5a35d84cdaf22d3961a2823bacf7f199ef971dcb07c4f18241eab26ff719752d393496855b67d4dd84967e6fa676decd980b929587b4d01dd51316b46ee7841f178d7ad906fe032468fbdfb86e2f92bfafe0001411ae9dcdd84b9fbba1f2b5e894302e61cecd22a646736f27d96f7eabb24bd6389a986a1c6e5bb7074fca9185d78301ee634c1e739d89ba56551b6d7d41019b8a55c07c155af753e4ba9a09eac3ace42e9397de9f07d1075966085eab206ad089b867372126f6dd744f19f51987141d975f6d55821970e186cd3217419ed3becc7b6e3b531bcdadb8911daf6ef07f70ff0bd2a556b3b0bf3ccab0c40950e925fe8ccf62f36b9b34fff6d8497938142fc1a6071ac3493057d4dceef99723ec2746c1ea7d781f3805148cfc65c622980751b12ded0d94317ca1d457adb1c1dbfb31f59a2050ad2d8bc1e927835ffaa33f818e6d0a24734eed0a4c3f272b3d8eceddc6c2ea6ce5b133e627f0fdd12d852db6d7a1e6ddf1a959a3fcdc9b88a114a108f9210decf3fcb64b2083a84ece8e497fcbfb63098bb57508c522abd52dacfe14e6bf6a11a9bd8e526693a537b307b6b37151457ef7075cde5c913576b1aeb66ab544ee92607ff91f675213e76c94672a1aed3c238e96e511bd3d618535f40440a49e91fefd78f764133ac720316748db8d2e1ff9c6b3484dad53d7cf3fbd3ae34a0079d4d9f3c3a029194bd2c836e162fb93aa945650a28544807c71c7cc0977d81920a43b2fc0db0f59f1fc1c5208ee2600a1b8f8731e306d8079d1ea28b2909792422a634ede19bea22c919a4104ff1ff6576578de718c0904406e4d13409c3d5876079f6f2d8feffa510fbcf1e6b4d8e393c2fda548a8fde557cd57e225d5c823bd430d05c28b2437f28b67432f81beaf1eae20dc0eb0c79d39ef50514f82caf8ad873f56f3515c7fb3d96f6770957b707a678aba4c3796d98db489344a5d9606cdad7b61f2d575344802274a1c9628dc6fad20744e5b1762ad4125e3107dc69436524e48fd0bf55a059570f419eafa60e783c35b64291647172b527e484075cb10eee566c879ae2732fc4cdd15118fde2e7887d6b7043743bafc6dee9a63dcb9f50cf8203fae4d4d3a3401cf55e80b20c4644e7175a0c40c420c51a0cb230c70abd9b101b1e446b987eaa10b77380c69a085a71661a340f0d9eee89521cf6b9f432877ca5cd42d59467f1b4192603c164e845e332577ceca0b010b2002b10d496898efa4d8e7aa996dd879636a3bb39eeb25b4540ec891614d560a03fcd0d4c4de66730c56433ab48d29ee90e830d7edd481e9ae53723d715d65b6f2f0e65fc81c6aae2e0e1bd06c6edffe9eee2cc8416172a02d31b60f4b2d9f8d3b20de0b1dad11818784df5100cfcf806d45a0184f0454d5625b3a4bc0b2ba74424df5c0e7454eda61d50955492f6e7bfaaba8960b1642c3ba8805a9731b303d6ec24fa7469936cd56f347c82fd26fe2274384e4d13f48a7a8846b97bb307e7cdb410da0021014fbe0183e37ea857c1182022d76d8c716f57863ee73b5cd4ddaf6c367548ac9614926c38910523013fba1784f68cb697d39c6c8af3c7eb7933b287ea100eccb8e16f58d0a241af59b572e01dcbaa3899e69c488892719a74f23f45c2dd9a7eb5801b36fd504a7c8b0a394d857695f0785da3ce6ac6631cad8acfd977eb85e9fc3d0a211789acc0a84b078bce92ecfe7b0af6981bf281ca779b3c9e0fa20a1c5be59357332e2a0920c4d2cc3779581c2987ee7d1d8ff913abf782b8c9474bc39331c82452aee6a0e5a5ce883fda053736d0b90aedc0841ba9786e00aa3c19c5c873447d6dc83bf36db113d24f560c3ece3cac28a5936879d8774a5b62d46e4235025985fc4d85fbb9a0ae28ae5f3101d9ac4b6fefb9b48742ca244f3c7f925d5dab78f834b231aeebaeba3babc6033d9a3bfe3325869040f316f7ff4dc8413ea5a909209e90a8aa1c0f179bb6698c1383692d6c23746db1f8c1713b05303f88582d10eaa5cc4a3f22f22f0eab2c9a6aed0c14d1ba2443417fbc5c90ad10f22e11b4eadffd8810dd7a73f5f1927cc60f8a9d78fd91e2395d534756e727fd2debe6adb6d5e0a2e4f74b75538e40ac0e200124a0a6334b6e11ee4b7f031016e5e4cb7cbe3d32b93e38dcc124c9fb0e81dfe619b502011740cb8bbd3313dd552661c7506bda424f1efc75e32004f2f6f152ae13adbadafdceb89bc70ed3e7</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-xray">
      <input class="hbe hbe-input-field hbe-input-field-xray" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-xray" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-xray">您好, 这里需要密码.</span>
      </label>
      <svg class="hbe hbe-graphic hbe-graphic-xray" width="300%" height="100%" viewBox="0 0 1200 60" preserveAspectRatio="none">
        <path d="M0,56.5c0,0,298.666,0,399.333,0C448.336,56.5,513.994,46,597,46c77.327,0,135,10.5,200.999,10.5c95.996,0,402.001,0,402.001,0"></path>
        <path d="M0,2.5c0,0,298.666,0,399.333,0C448.336,2.5,513.994,13,597,13c77.327,0,135-10.5,200.999-10.5c95.996,0,402.001,0,402.001,0"></path>
      </svg>
    </div>
  </div>
</div>
<script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css"></article><div class="post-copyright"><div class="post-copyright__author"><span class="post-copyright-meta">文章作者: </span><span class="post-copyright-info"><a href="http://liukuaizhuan.gitee.io">扣小妖</a></span></div><div class="post-copyright__type"><span class="post-copyright-meta">文章链接: </span><span class="post-copyright-info"><a href="http://liukuaizhuan.gitee.io/posts/52e236c9.html">http://liukuaizhuan.gitee.io/posts/52e236c9.html</a></span></div><div class="post-copyright__notice"><span class="post-copyright-meta">版权声明: </span><span class="post-copyright-info">本站所有文章除特别声明外，均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">CC BY-NC-SA 4.0</a> 许可协议</span></div></div><div class="tag_share"><div class="post-meta__tag-list"></div><div class="post_share"><div class="social-share" data-image="https://p.ananas.chaoxing.com/star3/origin/369de39b4145b2716d7c8a0e5df57e19.png" data-sites="facebook,twitter,wechat,weibo,qq"></div><link rel="stylesheet" href="https://lib.baomitu.com/social-share.js/1.0.16/css/share.min.css" media="print" onload="this.media='all'"><script src="https://lib.baomitu.com/social-share.js/1.0.16/js/social-share.min.js" defer></script></div></div><div class="post-reward"><div class="reward-button"><i class="fas fa-qrcode"></i> 打赏</div><div class="reward-main"><ul class="reward-all"><li class="reward-item"><a href="https://p.ananas.chaoxing.com/star3/origin/5a01db3c5a0daca9fa2b024736bf66e3.png" target="_blank"><img class="post-qr-code-img" src="https://p.ananas.chaoxing.com/star3/origin/5a01db3c5a0daca9fa2b024736bf66e3.png" alt="微信打赏"/></a><div class="post-qr-code-desc">微信打赏</div></li><li class="reward-item"><a href="https://p.ananas.chaoxing.com/star3/origin/afffb275198370656cb6cef6a1107185.png" target="_blank"><img class="post-qr-code-img" src="https://p.ananas.chaoxing.com/star3/origin/afffb275198370656cb6cef6a1107185.png" alt="支付宝打赏"/></a><div class="post-qr-code-desc">支付宝打赏</div></li></ul></div></div><nav class="pagination-post" id="pagination"><div class="prev-post pull-left"><a href="/posts/a7345c78.html"><img class="prev-cover" src="https://p.ananas.chaoxing.com/star3/origin/2ecc691edf3d5db2d6fe864388b16d6d.png" onerror="onerror=null;src='/img/404.jpg'" alt="cover of previous post"><div class="pagination-info"><div class="label">上一篇</div><div class="prev_info">002.php视频解析类</div></div></a></div><div class="next-post pull-right"><a href="/posts/3d03b6cd.html"><img class="next-cover" src="https://p.ananas.chaoxing.com/star3/origin/27849ab9f4ceb0c6b375ee25ab90aea5.png" onerror="onerror=null;src='/img/404.jpg'" alt="cover of next post"><div class="pagination-info"><div class="label">下一篇</div><div class="next_info">000. 工具包</div></div></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="https://p.ananas.chaoxing.com/star3/origin/c6eb667caaea4b46a934d65b6a348821.png" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">扣小妖</div><div class="author-info__description">Email：  liukuaizhuan@qq.com</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">57</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">6</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">14</div></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">This is my Blog 技术笔记</div></div><div class="sticky_layout"><div class="card-widget" id="card-toc"><div class="item-headline"><i class="fas fa-stream"></i><span>目录</span><span class="toc-percentage"></span></div><div class="toc-content toc-div-class" style="display:none"><ol class="toc"><li class="toc-item toc-level-4"><a class="toc-link" href="#curl%E9%80%9A%E8%AE%AF%E7%B1%BB%E5%8A%9F%E8%83%BD%E4%BB%8B%E7%BB%8D"><span class="toc-number">1.</span> <span class="toc-text">curl通讯类功能介绍</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E"><span class="toc-number">2.</span> <span class="toc-text">部署说明</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#GET%E6%96%B9%E5%BC%8F"><span class="toc-number">3.</span> <span class="toc-text">GET方式</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#POST%E6%96%B9%E5%BC%8F"><span class="toc-number">4.</span> <span class="toc-text">POST方式</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E8%8E%B7%E5%8F%96-curl-%E8%B5%84%E6%BA%90%E5%AF%B9%E8%B1%A1"><span class="toc-number">5.</span> <span class="toc-text">获取 curl 资源对象</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E8%AE%BE%E7%BD%AEcookie"><span class="toc-number">6.</span> <span class="toc-text">设置cookie</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E8%AE%BE%E7%BD%AE%E6%A8%A1%E6%8B%9F%E8%AE%BF%E9%97%AE%E6%9D%A5%E6%BA%90Refer"><span class="toc-number">7.</span> <span class="toc-text">设置模拟访问来源Refer</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E8%AE%BE%E7%BD%AE%E6%A8%A1%E6%8B%9FUseaAgent"><span class="toc-number">8.</span> <span class="toc-text">设置模拟UseaAgent</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E6%98%AF%E5%90%A6%E8%8E%B7%E5%8F%96301%E8%B7%B3%E8%BD%AC%E5%9C%B0%E5%9D%80"><span class="toc-number">9.</span> <span class="toc-text">是否获取301跳转地址</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E6%98%AF%E5%90%A6%E8%8E%B7%E5%8F%96%E8%BF%94%E5%9B%9E%E5%A4%B4header%E4%BF%A1%E6%81%AF"><span class="toc-number">10.</span> <span class="toc-text">是否获取返回头header信息</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E6%89%8B%E5%8A%A8%E8%AE%BE%E7%BD%AE%E8%AF%B7%E6%B1%82%E5%A4%B4"><span class="toc-number">11.</span> <span class="toc-text">手动设置请求头</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E4%BD%BF%E7%94%A8%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E5%8A%9F%E8%83%BD"><span class="toc-number">12.</span> <span class="toc-text">使用文件上传功能</span></a></li></ol></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#curl%E6%BA%90%E7%A0%81"><span class="toc-number"></span> <span class="toc-text">curl源码</span></a></div></div><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/posts/7f4a6eeb.html" title="013.c++核心编程-类和对象"><img src="https://p.ananas.chaoxing.com/star3/origin/7ea674ffcd12ef7d943d54c93e9203a4.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="013.c++核心编程-类和对象"/></a><div class="content"><a class="title" href="/posts/7f4a6eeb.html" title="013.c++核心编程-类和对象">013.c++核心编程-类和对象</a><time datetime="2023-02-13T14:55:03.000Z" title="发表于 2023-02-13 22:55:03">2023-02-13</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/4adebd64.html" title="012.C++核心编程-函数提高"><img src="https://p.ananas.chaoxing.com/star3/origin/b6c49bb4892ad191edbc0363caf45530.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="012.C++核心编程-函数提高"/></a><div class="content"><a class="title" href="/posts/4adebd64.html" title="012.C++核心编程-函数提高">012.C++核心编程-函数提高</a><time datetime="2023-02-13T14:51:24.000Z" title="发表于 2023-02-13 22:51:24">2023-02-13</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/bff12c11.html" title="011.C++核心编程-引用"><img src="https://p.ananas.chaoxing.com/star3/origin/86403540a7b572fec123890e9a638adc.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="011.C++核心编程-引用"/></a><div class="content"><a class="title" href="/posts/bff12c11.html" title="011.C++核心编程-引用">011.C++核心编程-引用</a><time datetime="2023-02-13T14:47:34.000Z" title="发表于 2023-02-13 22:47:34">2023-02-13</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/9368cbfc.html" title="010.C++核心编程-内存分区模型"><img src="https://p.ananas.chaoxing.com/star3/origin/b4c7f6d417c4c75ed02262f3549625c8.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="010.C++核心编程-内存分区模型"/></a><div class="content"><a class="title" href="/posts/9368cbfc.html" title="010.C++核心编程-内存分区模型">010.C++核心编程-内存分区模型</a><time datetime="2023-02-06T15:28:05.000Z" title="发表于 2023-02-06 23:28:05">2023-02-06</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/b056b485.html" title="009.C++基础实战-通讯录管理系统"><img src="https://p.ananas.chaoxing.com/star3/origin/5cdbcc7b75aea2aa3a8b12cae1439e99.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="009.C++基础实战-通讯录管理系统"/></a><div class="content"><a class="title" href="/posts/b056b485.html" title="009.C++基础实战-通讯录管理系统">009.C++基础实战-通讯录管理系统</a><time datetime="2023-02-04T10:02:31.000Z" title="发表于 2023-02-04 18:02:31">2023-02-04</time></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">&copy;2020 - 2023 By 扣小妖</div><div class="footer_custom_text"><p style="margin:10px 0 5px"><a target="_blank" href="https://hexo.io/" style="margin-inline:5px">博客 hexo</a><a target="_blank" href="https://butterfly.js.org/" style="margin-inline:5px">主题 Butterfly</a><a target="_blank" href="https://gitee.com/" style="margin-inline:5px">托管 Gitee</a></p></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="readmode" type="button" title="阅读模式"><i class="fas fa-book-open"></i></button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button class="close" id="mobile-toc-button" type="button" title="目录"><i class="fas fa-list-ul"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span>  数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div id="local-search-results"></div></div></div><div id="search-mask"></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://gcore.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.min.js"></script><script src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/node-snackbar/0.1.16/snackbar.min.js"></script><script src="/js/search/local-search.js"></script><div class="js-pjax"><script>(() => {
  const $mermaidWrap = document.querySelectorAll('#article-container .mermaid-wrap')
  if ($mermaidWrap.length) {
    window.runMermaid = () => {
      window.loadMermaid = true
      const theme = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'default'

      Array.from($mermaidWrap).forEach((item, index) => {
        const mermaidSrc = item.firstElementChild
        const mermaidThemeConfig = '%%{init:{ \'theme\':\'' + theme + '\'}}%%\n'
        const mermaidID = 'mermaid-' + index
        const mermaidDefinition = mermaidThemeConfig + mermaidSrc.textContent
        mermaid.mermaidAPI.render(mermaidID, mermaidDefinition, (svgCode) => {
          mermaidSrc.insertAdjacentHTML('afterend', svgCode)
        })
      })
    }

    const loadMermaid = () => {
      window.loadMermaid ? runMermaid() : getScript('https://gcore.jsdelivr.net/npm/mermaid/dist/mermaid.min.js').then(runMermaid)
    }

    window.pjax ? loadMermaid() : document.addEventListener('DOMContentLoaded', loadMermaid)
  }
})()</script></div><script defer="defer" id="ribbon" src="https://gcore.jsdelivr.net/npm/butterfly-extsrc/dist/canvas-ribbon.min.js" size="150" alpha="0.6" zIndex="-1" mobile="false" data-click="false"></script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>